#include <iostream>

using namespace std;
/*
	一个try对应多个catch
	原因：当throw抛出来的异常类型>=2以上，就需要写多个catch
*/

int otherfun(int n)
{
	if (n >= 10 && n <= 100) // 成功
		return 0;
	else if (n > 100)	// 失败
		throw "我错了"; // 抛出字符串异常
	else
		throw 55.5; // 抛出浮点型异常
}

int main()
{
	try
	{
		otherfun(16);
	}
	catch (double n) // 专门负责捕捉浮点型异常
	{
		cout << "otherfun调用失败,抛出了浮点型异常，参数n的值是: " << n << endl;
		return -1;
	}
	catch (const char *n) // 专门负责捕捉字符串异常
	{
		cout << "otherfun调用失败,抛出了字符串异常，参数n的值是: " << n << endl;
		return -1;
	}

	cout << "otherfun调用成功了，主程序继续往后执行" << endl;
	return 0;
}